#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
    int fd = open("log.txt",O_WRONLY | O_CREAT);
    if(fd < 0)
    {
        perror("open");
        return 1;
    }


    printf("open success, fd = %d\n",fd);
    return 0;
}





















//// 用int中的不重复的一个bit位，就可以表示一种状态
//#define ONE 0x1    // 0000 0001
//#define TWO 0x2    // 0000 0010
//#define THREE 0x4  // 0000 0100
//
//void show(int flags)
//{
//    if(flags & ONE) printf("hello one\n");
//    if(flags & TWO) printf("hello two\n");
//    if(flags & THREE) printf("hello three\n");
//}
//
//int main()
//{
//    show(ONE);
//    printf("------------------------------\n");
//    show(THREE);
//    printf("------------------------------\n");
//    show(ONE | TWO);
//    printf("------------------------------\n");
//    show(ONE | TWO | THREE);
//    return 0;
//}













//// myfile 一个文件名
//int main(int argc, char* argv[])
//{
//    if(argc != 2)
//    {
//        printf("argv error!\n");
//        return 1;
//    }
//    FILE *fp = fopen(argv[1],"r");// append:追加
//    if(fp == NULL)
//    {
//        // strerror
//        perror("log.txt");
//        return 2;
//    }
//    // 按行读取
//    char line[64];
//    //fgets -> C -> s(string) -> 会自动在字符结尾添加\0
//    while(fgets(line,sizeof(line),fp) != NULL)
//    {
//        fprintf(stdout,"%s",line);
//    }
//
//  //  const char* s1 = "hello fwrite\n";// 不要+1，\0结尾是C语言的规定，文件用遵守吗？文件要保存的是有效数据！
//  //  fwrite(s1,strlen(s1),1,fp );
//  //  const char* s2 = "hello fprintf\n";
//  //  fprintf(fp,"%s",s2);
//  //  const char* s3 = "fputs\n";
//  //  fputs(s3,fp);
//
//    //while(1)
//    //{
//    //    sleep(1);
//    //}
//
//    fclose(fp);
//    return 0;
//}
